home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 24 / CU Amiga Magazine's Super CD-ROM 24 (1998)(EMAP Images)(GB)(Track 1 of 2)[!][issue 1998-07].iso / CUCD / Utilities / vim-5.1 / src / globals.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-03-15  |  20.4 KB  |  533 lines

  1. /* vi:set ts=8 sts=4 sw=4:
  2.  *
  3.  * VIM - Vi IMproved    by Bram Moolenaar
  4.  *
  5.  * Do ":help uganda"  in Vim to read copying and usage conditions.
  6.  * Do ":help credits" in Vim to see a list of people who contributed.
  7.  */
  8.  
  9. /*
  10.  * definition of global variables
  11.  *
  12.  * EXTERN is only defined in main.c (and in option.h)
  13.  */
  14.  
  15. #ifndef EXTERN
  16. # define EXTERN extern
  17. # define INIT(x)
  18. #else
  19. # ifndef INIT
  20. #  define INIT(x) x
  21. #  define DO_INIT
  22. # endif
  23. #endif
  24.  
  25. /*
  26.  * Number of Rows and Columns in the screen.
  27.  * Must be long to be able to use them as options in option.c.
  28.  */
  29. EXTERN long    Rows INIT(= MIN_ROWS + 1);   /* nr of rows in the screen */
  30. EXTERN long    Columns INIT(= MIN_COLUMNS); /* nr of columns in the screen */
  31.  
  32. /*
  33.  * The characters that are currently on the screen are kept in NextScreen.
  34.  * It is a single block of characters, twice the size of the screen.
  35.  * First come the characters for one line, then the attributes for that line.
  36.  *
  37.  * "LinePointers[n]" points into NextScreen, at the start of line 'n'.
  38.  * "LinePointers[n] + Columns" points to the attibutes of line 'n'.
  39.  */
  40. EXTERN char_u    *NextScreen INIT(= NULL);
  41. EXTERN char_u    **LinePointers INIT(= NULL);
  42.  
  43. EXTERN int    screen_Rows INIT(= 0);        /* actual size of NextScreen */
  44. EXTERN int    screen_Columns INIT(= 0);   /* actual size of NextScreen */
  45.  
  46. /*
  47.  * When vgetc() is called, it sets mod_mask to the set of modifiers that are
  48.  * held down based on the KSMOD_* symbols that are read first.
  49.  */
  50. EXTERN int    mod_mask INIT(= 0x0);        /* current key modifiers */
  51.  
  52. /*
  53.  * Cmdline_row is the row where the command line starts, just below the
  54.  * last window.
  55.  * When the cmdline gets longer than the available space the screen gets
  56.  * scrolled up. After a CTRL-D (show matches), after hitting ':' after
  57.  * "hit return", and for the :global command, the command line is
  58.  * temporarily moved. The old position is restored with the next call to
  59.  * update_screen().
  60.  */
  61. EXTERN int    cmdline_row;
  62.  
  63. EXTERN int    redraw_cmdline INIT(= FALSE);    /* cmdline must be redrawn */
  64. EXTERN int    clear_cmdline INIT(= FALSE);    /* cmdline must be cleared */
  65. EXTERN int    modified INIT(= FALSE);        /* buffer was modified since
  66.                             last redraw */
  67. EXTERN int    tag_modified INIT(= FALSE);    /* buffer was modified since
  68.                             start of tag command */
  69. EXTERN int    screen_cleared INIT(= FALSE);    /* screen has been cleared */
  70.  
  71. /*
  72.  * When '$' is included in 'cpoptions' option set:
  73.  * When a change command is given that deletes only part of a line, a dollar
  74.  * is put at the end of the changed text. dollar_vcol is set to the virtual
  75.  * column of this '$'.
  76.  */
  77. EXTERN colnr_t    dollar_vcol INIT(= 0);
  78.  
  79. /*
  80.  * used for completion on the command line
  81.  */
  82. EXTERN int    expand_context INIT(= CONTEXT_UNKNOWN);
  83. EXTERN char_u    *expand_pattern INIT(= NULL);
  84. EXTERN int    expand_interactively INIT(= FALSE);
  85. EXTERN int    expand_set_path INIT(= FALSE);    /* ":set path=/dir/<Tab>" */
  86.  
  87. #define CONT_ADDING    (1)    /* "normal" or "adding" expansion */
  88. #define CONT_INTRPT    (2 + 4)    /* a ^X interrupted the current expansion */
  89.                 /* it's set only iff N_ADDS is set */
  90. #define CONT_N_ADDS    (4)    /* next ^X<> will add-new or expand-current */
  91. #define CONT_S_IPOS    (8)    /* next ^X<> will set initial_pos?
  92.                  * if so, word-wise-expansion will set SOL */
  93. #define CONT_SOL    (16)    /* pattern includes start of line, just for
  94.                  * word-wise expansion, not set for ^X^L */
  95. #define CONT_LOCAL    (32)    /* for ctrl_x_mode 0, ^X^P/^X^N do a local
  96.                  * expansion, (eg use complete=.) */
  97.  
  98. EXTERN int        completion_length INIT(= 0);
  99. EXTERN int        continue_status   INIT(= 0);
  100.  
  101. /*
  102.  * Keep the last (typed) count for a Normal mode command.  Used for the
  103.  * "count" built-in variable.
  104.  */
  105. EXTERN linenr_t        global_opnum INIT(= 0);
  106.  
  107. /*
  108.  * Functions for putting characters in the command line,
  109.  * while keeping NextScreen updated.
  110.  */
  111. EXTERN int    msg_col;
  112. EXTERN int    msg_row;
  113. EXTERN int    msg_scrolled;
  114.  
  115. EXTERN char_u    *keep_msg INIT(= NULL);        /* msg to be shown after redraw */
  116. EXTERN int    keep_msg_attr INIT(= 0);    /* highlight attr for keep_msg */
  117. EXTERN int    need_fileinfo INIT(= FALSE);/* do fileinfo() after redraw */
  118. EXTERN int    msg_scroll INIT(= FALSE);   /* msg_start() will scroll */
  119. EXTERN int    msg_didout INIT(= FALSE);   /* msg_outstr() was used in line */
  120. EXTERN int    msg_didany INIT(= FALSE);   /* msg_outstr() was used at all */
  121. EXTERN int    msg_nowait INIT(= FALSE);   /* don't wait for this msg */
  122. EXTERN int    emsg_off INIT(= FALSE);        /* don't display errors for now */
  123. EXTERN int    did_emsg;            /* set by emsg() for DoOneCmd() */
  124. EXTERN int    emsg_on_display INIT(= FALSE);    /* there is an error message */
  125. EXTERN int    rc_did_emsg INIT(= FALSE);  /* vim_regcomp() called emsg() */
  126. EXTERN int    no_wait_return INIT(= 0);   /* don't wait for return now */
  127. EXTERN int    need_wait_return INIT(= 0); /* need to wait for return later */
  128. EXTERN int    dont_wait_return INIT(= 0); /* no need to wait for return */
  129. EXTERN int    quit_more INIT(= FALSE);    /* 'q' hit at "--more--" msg */
  130. #if defined(UNIX) || defined(__EMX__)
  131. EXTERN int    newline_on_exit INIT(= FALSE);    /* did msg in altern. screen */
  132. EXTERN int    intr_char INIT(= 0);        /* extra interrupt character */
  133. #endif
  134. EXTERN int    vgetc_busy INIT(= FALSE);   /* inside vgetc() now */
  135. EXTERN int    call_shell_retval;        /* return value from call_shell() */
  136.  
  137. /*
  138.  * Lines left before a "more" message.    Ex mode needs to be able to reset this
  139.  * after you type something.
  140.  */
  141. EXTERN int lines_left INIT(= -1);    /* lines left for listing */
  142.  
  143.  
  144. EXTERN char_u    *sourcing_name INIT( = NULL);/* name of error message source */
  145. EXTERN linenr_t    sourcing_lnum INIT(= 0);    /* line number of the source file */
  146. EXTERN int    file_on_stdin INIT(= FALSE);    /* read file from stdin */
  147.  
  148. EXTERN int    scroll_region INIT(= FALSE); /* term supports scroll region */
  149. EXTERN int    highlight_match INIT(= FALSE);    /* show search match pos */
  150. EXTERN int    search_match_len;        /* length of matched string */
  151. EXTERN int    no_smartcase INIT(= FALSE);    /* don't use 'smartcase' once */
  152. EXTERN int    need_check_timestamps INIT(= FALSE); /* got STOP signal */
  153. EXTERN int    highlight_attr[HLF_COUNT];  /* Highl. attr for each context. */
  154. EXTERN char_u    *use_gvimrc INIT(= NULL);    /* "-U" cmdline argument */
  155. EXTERN int    cterm_normal_fg_color INIT(= 0);
  156. EXTERN int    cterm_normal_fg_bold INIT(= 0);
  157. EXTERN int    cterm_normal_bg_color INIT(= 0);
  158.  
  159. #ifdef AUTOCMD
  160. EXTERN int    autocmd_busy INIT(= FALSE);    /* Is apply_autocmds() busy? */
  161. EXTERN int    autocmd_no_enter INIT(= FALSE); /* *Enter autocmds disabled */
  162. EXTERN int    autocmd_no_leave INIT(= FALSE); /* *Leave autocmds disabled */
  163. EXTERN int    modified_was_set;        /* did ":set modified" */
  164. #endif
  165.  
  166. #ifdef USE_MOUSE
  167. /*
  168.  * Mouse coordinates, set by check_termcode()
  169.  */
  170. EXTERN int    mouse_row;
  171. EXTERN int    mouse_col;
  172. EXTERN int    mouse_past_bottom INIT(= FALSE);/* mouse below last line */
  173. EXTERN int    mouse_past_eol INIT(= FALSE);    /* mouse right of line */
  174. #if defined(DEC_MOUSE)
  175. /*
  176.  * When the DEC mouse has been pressed but not yet released we enable
  177.  * automatic querys for the mouse position.
  178.  */
  179. EXTERN int    WantQueryMouse INIT(= 0);
  180. #endif
  181.  
  182. #endif
  183.  
  184. #ifdef USE_GUI
  185. /*
  186.  * Menu item just selected, set by check_termcode()
  187.  */
  188. EXTERN GuiMenu    *current_menu;
  189.  
  190. /*
  191.  * Scrollbar moved and new value, set by check_termcode()
  192.  */
  193. EXTERN int    current_scrollbar;
  194. EXTERN long_u    scrollbar_value;
  195.  
  196. /* found "-rv" or "-reverse" in command line args */
  197. EXTERN int    found_reverse_arg INIT(= FALSE);
  198. EXTERN char *    font_opt INIT(= NULL);
  199. #endif
  200.  
  201. #ifdef USE_CLIPBOARD
  202. EXTERN VimClipboard clipboard;
  203. #endif
  204.  
  205. /*
  206.  * All windows are linked in a list. firstwin points to the first entry, lastwin
  207.  * to the last entry (can be the same as firstwin) and curwin to the currently
  208.  * active window.
  209.  */
  210. EXTERN WIN    *firstwin;    /* first window */
  211. EXTERN WIN    *lastwin;    /* last window */
  212. EXTERN WIN    *curwin;    /* currently active window */
  213.  
  214. /*
  215.  * All buffers are linked in a list. 'firstbuf' points to the first entry,
  216.  * 'lastbuf' to the last entry and 'curbuf' to the currently active buffer.
  217.  */
  218. EXTERN BUF    *firstbuf INIT(= NULL);    /* first buffer */
  219. EXTERN BUF    *lastbuf INIT(= NULL);    /* last buffer */
  220. EXTERN BUF    *curbuf INIT(= NULL);    /* currently active buffer */
  221.  
  222. /*
  223.  * list of files being edited (argument list)
  224.  */
  225. EXTERN char_u    **arg_files;    /* list of files */
  226. EXTERN int    arg_file_count;    /* number of files */
  227. EXTERN int    arg_had_last INIT(= FALSE); /* accessed last file in arglist */
  228.  
  229. EXTERN int    ru_col;        /* column for ruler */
  230. EXTERN int    sc_col;        /* column for shown command */
  231.  
  232. /*
  233.  * When starting or exiting some things are done differently (e.g. screen
  234.  * updating).
  235.  */
  236. EXTERN int    starting INIT(= TRUE);
  237.                 /* set to FALSE when starting up finished */
  238. EXTERN int    exiting INIT(= FALSE);
  239.                 /* set to TRUE when abandoning Vim */
  240. EXTERN int    full_screen INIT(= FALSE);
  241.                 /* set to TRUE when doing full-screen output
  242.                  * otherwise only writing some messages */
  243.  
  244. EXTERN int    restricted INIT(= FALSE);
  245.                 /* set to TRUE when started as "rvim" */
  246. EXTERN int    secure INIT(= FALSE);
  247.                 /* set to TRUE when only "safe" commands are
  248.                  * allowed, e.g. when sourcing .exrc or .vimrc
  249.                  * in current directory */
  250.  
  251. EXTERN int    silent_mode INIT(= FALSE);
  252.                 /* set to TRUE when "-s" commandline argument
  253.                  * used for ex */
  254.  
  255. EXTERN FPOS    VIsual;        /* start position of active Visual selection */
  256. EXTERN int    VIsual_active INIT(= FALSE);
  257.                 /* wheter Visual mode is active */
  258.  
  259. EXTERN int    VIsual_mode INIT(= 'v');
  260.                 /* type of Visual mode */
  261. EXTERN int    redo_VIsual_busy INIT(= FALSE);
  262.                 /* TRUE when redoing Visual */
  263.  
  264. #ifdef USE_MOUSE
  265. /*
  266.  * When pasting text with the middle mouse button in visual mode with
  267.  * restart_edit set, remember where it started so we can set Insstart.
  268.  */
  269. EXTERN FPOS    where_paste_started;
  270. #endif
  271.  
  272. /*
  273.  * This flag is used to make auto-indent work right on lines where only a
  274.  * <RETURN> or <ESC> is typed. It is set when an auto-indent is done, and
  275.  * reset when any other editting is done on the line. If an <ESC> or <RETURN>
  276.  * is received, and did_ai is TRUE, the line is truncated.
  277.  */
  278. EXTERN int     did_ai INIT(= FALSE);
  279.  
  280. #ifdef SMARTINDENT
  281. /*
  282.  * This flag is set when a smart indent has been performed. When the next typed
  283.  * character is a '{' the inserted tab will be deleted again.
  284.  */
  285. EXTERN int    did_si INIT(= FALSE);
  286.  
  287. /*
  288.  * This flag is set after an auto indent. If the next typed character is a '}'
  289.  * one indent will be removed.
  290.  */
  291. EXTERN int    can_si INIT(= FALSE);
  292.  
  293. /*
  294.  * This flag is set after an "O" command. If the next typed character is a '{'
  295.  * one indent will be removed.
  296.  */
  297. EXTERN int    can_si_back INIT(= FALSE);
  298. #endif
  299.  
  300. EXTERN int    State INIT(= NORMAL);    /* This is the current state of the
  301.                      * command interpreter. */
  302. /*
  303.  * ex mode (Q) state
  304.  */
  305. EXTERN int exmode_active INIT(= FALSE);
  306. EXTERN int ex_no_reprint INIT(= FALSE); /* no need to print after z or p */
  307.  
  308. EXTERN int    Recording INIT(= FALSE);/* TRUE when recording into a reg. */
  309. EXTERN int    Exec_reg INIT(= FALSE);    /* TRUE when executing a register */
  310.  
  311. EXTERN int    finish_op INIT(= FALSE);/* TRUE while an operator is pending */
  312.  
  313. EXTERN int    no_mapping INIT(= FALSE);   /* currently no mapping allowed */
  314. EXTERN int    allow_keys INIT(= FALSE);   /* allow key codes when no_mapping
  315.                          * is set */
  316. EXTERN int    no_u_sync INIT(= 0);    /* Don't call u_sync() */
  317.  
  318. EXTERN int    restart_edit INIT(= 0);    /* call edit when next cmd finished */
  319. EXTERN int    arrow_used;        /* Normally FALSE, set to TRUE after
  320.                      * hitting cursor key in insert mode.
  321.                      * Used by vgetorpeek() to decide when
  322.                      * to call u_sync() */
  323. #ifdef INSERT_EXPAND
  324. EXTERN char_u    *edit_submode INIT(= NULL); /* msg for CTRL-X submode */
  325. EXTERN char_u    *edit_submode_extra INIT(= NULL);/* extra info for msg */
  326. EXTERN enum hlf_value    edit_submode_highl; /* highl. method for extra info */
  327. EXTERN int    ctrl_x_mode INIT(= 0);    /* Which Ctrl-X mode are we in? */
  328. #endif
  329.  
  330. EXTERN int    no_abbr INIT(= TRUE);    /* TRUE when no abbreviations loaded */
  331. EXTERN int    fo_do_comments INIT(= FALSE);
  332.                     /* TRUE when comments are to be
  333.                      * formatted */
  334. #ifdef MSDOS
  335. EXTERN int    beep_count INIT(= 0);    /* nr of beeps since last char typed */
  336. #endif
  337.  
  338. #ifdef USE_EXE_NAME
  339. EXTERN char_u    *exe_name;        /* the name of the executable */
  340. #endif
  341.  
  342. #ifdef USE_GUI_WIN32
  343. EXTERN    int    dont_scroll INIT(= FALSE);/* don't use scrollbars when TRUE */
  344. #endif
  345.  
  346. EXTERN char_u    *IObuff;        /* sprintf's are done in this buffer */
  347. EXTERN char_u    *NameBuff;        /* file names are expanded in this
  348.                      * buffer */
  349. EXTERN char_u    msg_buf[MSG_BUF_LEN];    /* small buffer for messages */
  350.  
  351. EXTERN int    RedrawingDisabled INIT(= FALSE);
  352.                     /* Set to TRUE if doing :g */
  353. EXTERN int    display_hint INIT(= HINT_NONE);
  354.                     /* hint to insert/delete character */
  355.  
  356. EXTERN int    readonlymode INIT(= FALSE); /* Set to TRUE for "view" */
  357. EXTERN int    recoverymode INIT(= FALSE); /* Set to TRUE for "-r" option */
  358.  
  359. EXTERN char_u    *typebuf INIT(= NULL);    /* buffer for typed characters */
  360. EXTERN int    typebuflen;        /* size of typebuf */
  361. EXTERN int    typeoff;        /* current position in typebuf */
  362. EXTERN int    typelen;        /* number of valid chars in typebuf */
  363. EXTERN int    KeyTyped;        /* TRUE if user typed current char */
  364. EXTERN int    KeyStuffed;        /* TRUE if current char from stuffbuf */
  365. EXTERN int    maptick INIT(= 0);    /* tick for each non-mapped char */
  366.  
  367. EXTERN char_u    chartab[256];        /* table used in charset.c */
  368.  
  369. EXTERN int    must_redraw INIT(= 0);        /* type of redraw necessary */
  370. EXTERN int    skip_redraw INIT(= FALSE);  /* skip redraw once */
  371. EXTERN int    do_redraw INIT(= FALSE);    /* extra redraw once */
  372.  
  373. EXTERN int    need_highlight_changed INIT(= TRUE);
  374. EXTERN char_u    *use_viminfo INIT(= NULL);  /* name of viminfo file to use */
  375.  
  376. #define NSCRIPT 15
  377. EXTERN FILE    *scriptin[NSCRIPT];        /* streams to read script from */
  378. EXTERN int    curscript INIT(= 0);        /* index in scriptin[] */
  379. EXTERN FILE    *scriptout  INIT(= NULL);   /* stream to write script to */
  380. EXTERN int    read_cmd_fd INIT(= 0);        /* fd to read commands from */
  381.  
  382. EXTERN int    got_int INIT(= FALSE);        /* set to TRUE when interrupt
  383.                         signal occurred */
  384. EXTERN int    term_console INIT(= FALSE); /* set to TRUE when consule used */
  385. EXTERN int    termcap_active INIT(= FALSE);    /* set by starttermcap() */
  386. EXTERN int    bangredo INIT(= FALSE);        /* set to TRUE whith ! command */
  387. EXTERN int    searchcmdlen;            /* length of previous search cmd */
  388. EXTERN int    reg_ic INIT(= 0);        /* p_ic passed to vim_regexec() */
  389. EXTERN int    reg_syn INIT(= 0);        /* vim_regexec() used for syntax */
  390.  
  391. EXTERN int    did_outofmem_msg INIT(= FALSE);
  392.                         /* set after out of memory msg */
  393. EXTERN int    did_swapwrite_msg INIT(= FALSE);
  394.                         /* set after swap write error msg */
  395. EXTERN int    undo_off INIT(= FALSE);        /* undo switched off for now */
  396. EXTERN int    global_busy INIT(= 0);        /* set when :global is executing */
  397. EXTERN int    need_start_insertmode INIT(= FALSE);
  398.                         /* start insert mode soon */
  399. EXTERN char_u    *last_cmdline INIT(= NULL); /* last command line (for ":) */
  400. EXTERN char_u    *new_last_cmdline INIT(= NULL);    /* new value for last_cmdline */
  401. #ifdef AUTOCMD
  402. EXTERN char_u    *autocmd_fname INIT(= NULL); /* fname for <afile> on cmdline */
  403. #endif
  404.  
  405. EXTERN int    postponed_split INIT(= 0);  /* for CTRL-W CTRL-] command */
  406. EXTERN int    replace_offset INIT(= 0);   /* offset for replace_push() */
  407.  
  408. EXTERN char_u    *escape_chars INIT(= (char_u *)" \t\\\"|");
  409.                         /* need backslash in cmd line */
  410.  
  411. EXTERN char_u    *help_save_isk INIT(= NULL);/* 'isk' saved by do_help() */
  412. EXTERN long    help_save_ts INIT(= 0);        /* 'ts' saved by do_help() */
  413. EXTERN int    keep_help_flag INIT(= FALSE); /* doing :ta from help file */
  414.  
  415. /*
  416.  * When a string option is NULL (which only happens in out-of-memory
  417.  * situations), it is set to empty_option, to avoid having to check for NULL
  418.  * everywhere.
  419.  */
  420. EXTERN char_u    *empty_option INIT(= (char_u *)"");
  421.  
  422. #ifdef DEBUG
  423. EXTERN FILE *debugfp INIT(= NULL);
  424. #endif
  425.  
  426. EXTERN FILE *redir_fd INIT(= NULL);    /* message redirection file */
  427. EXTERN int  redir_off INIT(= FALSE);    /* no redirection for a moment */
  428.  
  429. #ifdef HAVE_LANGMAP
  430. EXTERN char_u    langmap_mapchar[256];    /* mapping for language keys */
  431. #endif
  432.  
  433. #ifdef WIN32
  434. EXTERN char_u    toupper_tab[256];    /* table for toupper() */
  435. EXTERN char_u    tolower_tab[256];    /* table for tolower() */
  436. #endif
  437.  
  438. EXTERN char    breakat_flags[256];    /* which characters are in 'breakat' */
  439.  
  440. extern char *Version;            /* this is in version.c */
  441. extern char *mediumVersion;        /* this is in version.c */
  442. extern char *longVersion;        /* this is in version.c */
  443.  
  444. /*
  445.  * Some file names for Unix are stored in pathdef.c, to make their value
  446.  * depend on the Makefile.
  447.  */
  448. #ifdef HAVE_PATHDEF
  449. extern char_u *default_vim_dir;        /* this is in pathdef.c */
  450. extern char_u *all_cflags;        /* this is in pathdef.c */
  451. extern char_u *all_lflags;        /* this is in pathdef.c */
  452. #endif
  453.  
  454. EXTERN char_u no_lines_msg[]    INIT(="--No lines in buffer--");
  455.  
  456. /*
  457.  * The error messages that can be shared are included here.
  458.  * Excluded are errors that are only used once and debugging messages.
  459.  */
  460. EXTERN char_u e_abort[]        INIT(="Command aborted");
  461. EXTERN char_u e_ambmap[]    INIT(="Ambiguous mapping");
  462. EXTERN char_u e_argreq[]    INIT(="Argument required");
  463. EXTERN char_u e_backslash[]    INIT(="\\ should be followed by /, ? or &");
  464. EXTERN char_u e_curdir[]    INIT(="Command not allowed from exrc/vimrc in current dir or tag search");
  465. EXTERN char_u e_exists[]    INIT(="File exists (use ! to override)");
  466. EXTERN char_u e_failed[]    INIT(="Command failed");
  467. EXTERN char_u e_internal[]    INIT(="Internal error");
  468. EXTERN char_u e_interr[]    INIT(="Interrupted");
  469. EXTERN char_u e_invaddr[]    INIT(="Invalid address");
  470. EXTERN char_u e_invarg[]    INIT(="Invalid argument");
  471. EXTERN char_u e_invarg2[]    INIT(="Invalid argument: %s");
  472. EXTERN char_u e_invexpr2[]    INIT(="Invalid expression: %s");
  473. EXTERN char_u e_invrange[]    INIT(="Invalid range");
  474. EXTERN char_u e_invcmd[]    INIT(="Invalid command");
  475. EXTERN char_u e_letunexp[]    INIT(="Unexpected characters before '='");
  476. EXTERN char_u e_markinval[]    INIT(="Mark has invalid line number");
  477. EXTERN char_u e_marknotset[]    INIT(="Mark not set");
  478. EXTERN char_u e_nesting[]    INIT(="Scripts nested too deep");
  479. EXTERN char_u e_noalt[]        INIT(="No alternate file");
  480. EXTERN char_u e_nobang[]    INIT(="No ! allowed");
  481. EXTERN char_u e_nogvim[]    INIT(="GUI cannot be used: Not enabled at compile time\n");
  482. EXTERN char_u e_nohebrew[]    INIT(="Hebrew cannot be used: Not enabled at compile time\n");
  483. EXTERN char_u e_nofarsi[]    INIT(="Farsi cannot be used: Not enabled at compile time\n");
  484. EXTERN char_u e_noinstext[]    INIT(="No inserted text yet");
  485. EXTERN char_u e_nolastcmd[]    INIT(="No previous command line");
  486. EXTERN char_u e_nomap[]        INIT(="No such mapping");
  487. EXTERN char_u e_nomatch[]    INIT(="No match");
  488. EXTERN char_u e_nomatch2[]    INIT(="No match: %s");
  489. EXTERN char_u e_noname[]    INIT(="No file name");
  490. EXTERN char_u e_nopresub[]    INIT(="No previous substitute regular expression");
  491. EXTERN char_u e_noprev[]    INIT(="No previous command");
  492. EXTERN char_u e_noprevre[]    INIT(="No previous regular expression");
  493. EXTERN char_u e_norange[]    INIT(="No range allowed");
  494. EXTERN char_u e_noroom[]    INIT(="Not enough room");
  495. EXTERN char_u e_notcreate[]    INIT(="Can't create file %s");
  496. EXTERN char_u e_notmp[]        INIT(="Can't get temp file name");
  497. EXTERN char_u e_notopen[]    INIT(="Can't open file %s");
  498. EXTERN char_u e_notread[]    INIT(="Can't read file %s");
  499. EXTERN char_u e_nowrtmsg[]    INIT(="No write since last change (use ! to override)");
  500. EXTERN char_u e_null[]        INIT(="Null argument");
  501. EXTERN char_u e_number[]    INIT(="Number expected");
  502. EXTERN char_u e_openerrf[]    INIT(="Can't open errorfile %s");
  503. EXTERN char_u e_outofmem[]    INIT(="Out of memory!");
  504. EXTERN char_u e_patnotf[]    INIT(="Pattern not found");
  505. EXTERN char_u e_patnotf2[]    INIT(="Pattern not found: %s");
  506. EXTERN char_u e_positive[]    INIT(="Argument must be positive");
  507. EXTERN char_u e_quickfix[]    INIT(="No Errors");
  508. EXTERN char_u e_re_damg[]    INIT(="Damaged match string");
  509. EXTERN char_u e_re_corr[]    INIT(="Corrupted regexp program");
  510. EXTERN char_u e_readonly[]    INIT(="'readonly' option is set (use ! to override)");
  511. EXTERN char_u e_readerrf[]    INIT(="Error while reading errorfile");
  512. EXTERN char_u e_scroll[]    INIT(="Invalid scroll size");
  513. EXTERN char_u e_tagformat[]    INIT(="Format error in tags file \"%s\"");
  514. EXTERN char_u e_tagstack[]    INIT(="tag stack empty");
  515. EXTERN char_u e_toocompl[]    INIT(="Command too complex");
  516. EXTERN char_u e_toombra[]    INIT(="Too many \\(");
  517. EXTERN char_u e_toomket[]    INIT(="Too many \\)");
  518. EXTERN char_u e_toomsbra[]    INIT(="Too many [");
  519. EXTERN char_u e_toolong[]    INIT(="Command too long");
  520. EXTERN char_u e_toomany[]    INIT(="Too many file names");
  521. EXTERN char_u e_trailing[]    INIT(="Trailing characters");
  522. EXTERN char_u e_umark[]        INIT(="Unknown mark");
  523. EXTERN char_u e_unknown[]    INIT(="Unknown");
  524. EXTERN char_u e_write[]        INIT(="Error while writing");
  525. EXTERN char_u e_zerocount[]    INIT(="Zero count");
  526.  
  527. /*
  528.  * Optional Farsi support.  Include it here, so EXTERN and INIT are defined.
  529.  */
  530. #ifdef FKMAP
  531. # include "farsi.h"
  532. #endif
  533.